package tesis.service;

import java.util.List;
import tesis.domain.*;
import tesis.dto.in.AplicacionClienteDTO;
import tesis.dto.out.FormDTO;
import tesis.service.rest.WrapperResults;



public interface TransactionalService {
   
  
    
    Proceso instalarProceso(Proceso proceso);
           
    InstanciaEstacion getInstanciaEstacion(Integer idInstanceStation);
    
    List<TipoDocumento> getListaTipoDocumentos(Integer codeStation);
    
    List<Variable> getListaVariables(Integer codeStation);
      
    Cargo getCargo(Integer codeInstanceStation);
    
    Proceso getProceso(Integer idProceso);
    
    InstanciaProceso getInstanciaProcesoByIdStation(Integer codeInstanceStation);
    
    InstanciaProceso getInstanciaProcesoById(Integer id);
    
    Estacion getEstacion(Integer idProceso, String nombreEstacion);
    
    Estacion getEstacion(Integer idEstacion);
    
    InstanciaEstacionXParametroVariable saveInstEstXParVar(InstanciaEstacionXParametroVariable instEstXParVars);
    
    InstanciaEstacionXParametroDocumento saveInstEstXParDoc(InstanciaEstacionXParametroDocumento instEstXParDoc);
    
    InstanciaEstacion saveInstanciaEstacion(InstanciaEstacion instanciaEstacion);
    
    InstanciaProceso updateInstanciaProceso(InstanciaProceso instanciaProceso);
    
    InstanciaEstacion updateInstanciaEstacion(InstanciaEstacion instanciaEstacion);
    
    EstadoInstanciaEstacion getEstadoInstanciaEstacion(String nombreEstado);
    
    EstadoInstanciaEstacionXInstanciaEstacion saveEstInstXInstEst(EstadoInstanciaEstacionXInstanciaEstacion estInstXInstEst);
    
    EstadoInstanciaProceso getEstadoInstanciaProceso(String nombreEstado);
    
    InstanciaProcesoXEstadoInstanciaProceso saveInstProXEstInstPro(InstanciaProcesoXEstadoInstanciaProceso instProXEstInstPro);
    
    EstadoInstanciaEstacionXInstanciaEstacion getEstadoInstanciaEstacion(InstanciaEstacion instancia);
    
    HistoricoParametroVariable saveHistoricoParametroVariable(HistoricoParametroVariable historia);
    
    HistoricoParametroDocumento saveHistoricoParametroDocumento(HistoricoParametroDocumento historia);
    
    Usuario  asignarUsuario(Cargo cargo);
    
    WrapperResults getInstanciaEstacionByUser(AplicacionClienteDTO aplicacionClienteDTO);
    
    List<EstadoInstanciaEstacion> getEstadoInstanciaEstacion();
    
    
    Cargo getCargoByUser( Integer idUsuario);
    
    WrapperResults getEstacionbyCargo(Integer idCargo,Integer inicio, Integer fin);
    
    InstanciaProceso createInstanceProceso(InstanciaProceso instancia);
    
    
    InstanciaEstacion createInstanceEstacion(InstanciaEstacion instancia);
    
    FormDTO getVariablesForm(Integer idEstacion);
    
    
    Documento saveDocumento(Documento documento);
    
    Expediente saveExpediente(Expediente expediente);
    
    
    Expediente getExpediente(Integer Idinstanciaproceso);
    

    List <InstanciaEstacionXParametroVariable> getInstanciaEstXParametroVar(Integer idParVar, Integer codeInstanceStation);

    FormDTO getValoresParametros(Integer idInstanciaProceso);

    

    List <InstanciaEstacionXParametroDocumento> getInstanciaEstXParametroDoc(Integer idParDoc, Integer codeInstanceStation);

    FormDTO getValoresEstacionAnterior(Integer idInstanciaProceso,Integer idInstanciaEstacionActual);

    
}
